Windows で AWS CLI のエラー「Unknown options:」を回避するには
困っていた内容
Windows のコマンドプロンプトで AWS CLI を実行するとUnknown options:
エラーが表示されます。
バージョンが古いのかと思い AWS CLI を最新版に更新しましたが、解消しません。対処方法を教えてください。
C:\Users\Administrator>aws lambda invoke --function-name hato-lambda --cli-binary-format raw-in-base64-out --payload '{ "key": "value" }' response.json usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help Unknown options: }', response.json, value
どう対応すればいいの?
次の通りにコマンドを置き換えて、実行してください。
"
⇨\"
'
⇨"
# 変更前 aws lambda invoke --function-name hato-lambda --cli-binary-format raw-in-base64-out --payload '{ "key": "value" }' response.json # 変更後 aws lambda invoke --function-name hato-lambda --cli-binary-format raw-in-base64-out --payload "{ \"key\": \"value\" }" response.json
コマンドで使用できる引用符('
や"
)は、OS(WindowsやMac、Linux)によって異なり、Windowsではシングルクォーテーション('
)を引用符として使用できません。
そのため、ドキュメント等に記載の Mac、Linux 向けのサンプルコマンドを実行すると、エラーになる場合があります。
シングルクォーテーションが使用されている場合は、あらかじめダブルクォーテーション("
)とエスケープ(\"
)に置き換えて実行してください。
参考資料
Windows コマンドプロンプトでは、JSON データ構造を二重引用符
" "
で囲む必要があります。また、コマンドプロセッサによって、JSON に埋め込まれた二重引用符が誤って解釈されないようにするには、以下の例のように、JSON データ構造内の各二重引用符\
をエスケープする (バックスラッシュ"
文字で始める) 必要もあります。